Project-Based Learning on Versal Adaptive SoC

Goal

A simple, clear and intuitive learning process with a specific application focus

The project-based learning focus is twofold:

Objective

Programming Model Application
Single Kernel Low-Pass Filter
Multiple Kernel Mean Filter

Introduction

All the labs in this PBL tutorial is divided into three parts. The first part shows the whole process of designing an application and verifying it using Python. The second part focus on the kernel programming using the AIE APIs to achieve the highest performance on the AI Engine. The primary goal of the part two is to ensure the use of the vector processor and to understand the theoretical maximum. Vectorization of the algorithm is important, but managing the vector registers, memory access, and software pipelining are also paramount. The third part goes through the steps on creating the Adaptive DataFlow (ADF) graph and analyze the performance. The following table shows the key content of the three parts of the tutorial.

Part Topic Description Environment
1 Software implementation Demonstrate the software implementation of the application Jupyter Notebook
Using Python and its powerful extensible library
Generate the input and golden data files for the AIE
2 Single Kernel Programming Design the FIR single kernel in AIE AMD Vitis 2022.2
Analyze and optimize the read and write efficiency of ports
3 Graph Programming and Performance Analysis Create the kernel Graph and the test bench Jupyter Notebook
Compare with AIE HW Emulation result with the SW result
Analyze performance and accuracy

The following images visually illustrate the process of the PBL experiment, starting from Part one where applications are showcased in a Jupyter notebook, progressing to Part 2 where kernel code is compiled and simulated or tested on the board using the Vitis tool, and finally advancing to Part 3 where simulation or on-board test results are exported and imported back into the Jupyter notebook for performance simulation and verification

diagram

Environment Setup

  1. Install Jupyter Lab on Windows system

    pip install jupyterlab
    
  2. Set up the Python environment with the necessary packages

    cd $HOME/xup_aie_training/pbl/common
    pip install -r requirements.txt
    
  3. Open the Jupyter Notebook

    cd $HOME/xup_aie_training/pbl/aie_single_kernel/fir_lowpass/notebook
    py -m jupyter lab
    
  4. Install the Vitis tool and setup VCK5000 in Linux system

    • If you want to set up a local environment for VCK5000,please refer to this Guide.

Copyright© 2023 Advanced Micro Devices